class Person:
    # 构造函数
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def say(self):
        print("我是一个人。")
    def enable(self):
        print("我能跑步")
# 继承上边的类
class Student(Person):
    # 重新构造函数
    def __init__(self,name,age,grade):
        super().__init__(name,age)
        self.grade = grade
    # 方法的重写
    def say(self):
        print("我是一个学生。")
    def enable(self):
        # 在子类中调用父类方法
        super().enable()
        print("我能写代码")
p1 = Person("张三",20)
s1 = Student("李四",30,"人工智能1班")
print(s1.name)
p1.say()
s1.say()
s1.enable()
# Animal类 Cat猫 Dog
# Animal 属性 名字 颜色 方法 能爬树
# Cat 属性 眼睛颜色eye_color 方法 能抓老鼠
# Dog 属性 智商高低 方法 能游泳
class Animal:
    # 构造函数
    def __init__(self,name,color):
        self.name=name
        self.color=color
    # 方法 能游泳 enable
    def enable(self):
        print('能爬树')
# 定义一个猫的类 猫的类继承animal
class Cat(Animal):
    def __init__(self,name,color,eye_color):
        super().__init__(name,color)
        self.eye_color = eye_color
    def enable(self):
        super().enable()
        print('能抓老鼠')
# 定义一个狗的类 狗继承Animal 属性IQ enable 能游泳
class Dog(Animal):
    def __init__(self,name,color,iq):
        super().__init__(name,color)
        self.iq=iq
    def enable(self):
        print('能游泳')
c = Cat("狸狸","橘花猫","褐色")
d = Dog("富贵","金色","高")
c.enable()
d.enable()
